{#
 # ---------------------------------------------------------------------
 #
 # GLPI - Gestionnaire Libre de Parc Informatique
 #
 # http://glpi-project.org
 #
 # @copyright 2015-2024 Teclib' and contributors.
 # @copyright 2003-2014 by the INDEPNET Development Team.
 # @licence   https://www.gnu.org/licenses/gpl-3.0.html
 #
 # ---------------------------------------------------------------------
 #
 # LICENSE
 #
 # This file is part of GLPI.
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
 # the Free Software Foundation, either version 3 of the License, or
 # (at your option) any later version.
 #
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <https://www.gnu.org/licenses/>.
 #
 # ---------------------------------------------------------------------
 #}

{% extends 'components/itilobject/timeline/form_timeline_item.html.twig' %}
{% import 'components/form/fields_macros.html.twig' as fields %}

{% block timeline_card %}
   {% if form_mode == 'view' %}
      <div class="row align-items-center m-n2">
         {% set name     = entry_i['name'] ?? entry_i['filename'] %}
         {% set filename = entry_i['filename'] ?? entry_i['name'] %}
         {% set fk = item.getForeignKeyField() %}

         {% if entry_i['filename'] %}
            {% set docpath = path('front/document.send.php?docid=' ~ entry_i['id'] ~ "&" ~ fk ~ "=" ~ item.fields["id"]) %}
            <div class="col text-truncate">
               <a href="{{ docpath }}" target="_blank" title="{{ name }}">
                  <img src="{{ filename|document_icon }}" alt="{{ __('File extension') }}" />
                  {{ filename }}
               </a>
            </div>
         {% endif %}

         {% if entry_i['link'] %}
            <div class="col-auto">
               <a href="{{ entry_i['link'] }}" target="_blank">
                  <i class="ti ti-external-link"></i>
                  {{ entry_i['name'] }}
               </a>
            </div>
         {% endif %}

         {% if entry_i['filepath'] is defined and entry_i['filepath'] is not null %}
            <div class="col-auto text-muted ms-2">
               {{ entry_i['filepath']|document_size }}
            </div>
         {% endif %}

         <div class="col-auto">
            <div class="list-group-item-actions">
               {% if entry_i['_can_edit'] %}
                  <a href="{{ 'Document'|itemtype_form_path(entry_i['id']) }}"
                     class="btn btn-sm btn-ghost-secondary" title="{{ _x('button', 'Edit') }}"
                     data-bs-toggle="tooltip" data-bs-placement="top">
                     <i class="ti ti-edit"></i>
                  </a>
               {% endif %}

               {% if entry_i['_can_delete'] %}
                  <form class="d-inline" method="post" action="{{ item.getFormURL() }}">
                     <input type="hidden" name="{{ fk }}" value="{{ item.fields['id'] }}">
                     <input type="hidden" name="documents_id" value="{{ entry_i['id'] }}">
                     <input type="hidden" name="_glpi_csrf_token" value="{{ csrf_token() }}" />
                     <button type="submit" class="btn btn-sm btn-ghost-secondary" name="delete_document"
                             title="{{ _x('button', 'Delete permanently') }}"
                             data-bs-toggle="tooltip" data-bs-placement="top">
                        <i class="ti ti-trash"></i>
                     </button>
                  </form>
               {% endif %}
            </div>
         </div>
      </div>
    {% else %}
        <div class="document_item">
            <form name="asset_form" style="width: 100%;" class="d-flex flex-column" method="post"
                action="{{ "Document"|itemtype_form_path() }}" enctype="multipart/form-data" data-track-changes="true" data-submit-once>
                <input type="hidden" name="entities_id" value="{{ item.getEntityID() }}" />
                <input type="hidden" name="is_recursive" value="{{ item.isRecursive() }}" />
                <input type="hidden" name="itemtype" value="{{ item.getType() }}" />
                <input type="hidden" name="items_id" value="{{ item.fields['id'] }}" />
                <input type="hidden" name="_glpi_csrf_token" value="{{ csrf_token() }}" />
                {{ call_plugin_hook('pre_item_form', {"item": subitem, 'options': params}) }}

                {% set can_screenshot = call('Document::isValidDoc', ['.png']) is not empty %}
                {% set can_screenrecord = call('Document::isValidDoc', ['.webm']) is not empty %}

                {% if can_screenshot or can_screenrecord %}
                    <div class="upload-from-section d-none">
                        <label id="upload_source_label" class="form-label">{{ __("Upload from") }}</label>
                        <div class="d-inline" role="group" aria-labelledby="upload_source_label">
                            {% if can_screenshot %}
                                <button class="btn btn-sm btn-secondary me-2 d-none" type="button" name="add_screenshot">
                                    <i class="ti ti-photo"></i>
                                    <span>{{ __('Screenshot') }}</span>
                                </button>
                            {% endif %}
                            {% if can_screenrecord %}
                                <button class="btn btn-sm btn-secondary me-2 d-none" type="button" name="add_screenrecording">
                                    <i class="ti ti-camera"></i>
                                    <span>{{ __('Screen recording') }}</span>
                                </button>
                            {% endif %}
                        </div>
                        <div id="screen_capture_preview" class="w-100">
                            <div class="previews overflow-x-scroll my-2 d-flex px-2"></div>
                            <button type="button" name="stop_recording" class="btn btn-secondary d-none">{{ __('Stop recording') }}</button>
                        </div>
                        <hr class="my-1">
                    </div>
                {% endif %}
                {% if get_current_interface() == 'central' %}
                    {{ fields.dropdownField(
                        'DocumentCategory',
                        'documentcategories_id',
                        null,
                        __("Heading"),
                        {
                            'label_class': 'col-xxl-3',
                            'field_class': 'col-xxl-11',
                            'full_width': true,
                            'is_horizontal': false
                        }
                    ) }}
                {% endif %}

                {% set max_size %}
                    <div class="alert alert-info">
                        {{ call("Document::getMaxUploadSize") }}
                    </div>
                {% endset %}

                {{ fields.fileField(
                    'filename',
                    null,
                    __("File"),
                    {
                        'multiple': true,
                        'label_class': 'col-xxl-3',
                        'field_class': 'col-xxl-11',
                        'full_width': true,
                        'is_horizontal': false,
                        'add_field_html': max_size,
                    }
                ) }}

                {{ call_plugin_hook('post_item_form', {"item": subitem, 'options': params}) }}

                <div class="d-flex card-footer mx-n3 mb-n3">
                    {% if subitem.fields['id'] <= 0 %}
                        <div class="input-group">
                            <button class="btn btn-primary" type="submit" name="add">
                                <i class="ti ti-file-plus"></i>
                                <span>{{ _x('button', 'Add a new file') }}</span>
                            </button>
                        </div>
                    {% endif %}
                </div>
            </form>
        </div>
        <script type="module">
            import('{{ js_path('js/modules/ITIL/Timeline/DocumentForm.js') }}');
        </script>
   {% endif %}
{% endblock %}
